package com.user.listener;

import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.user.domain.User;
import com.user.service.UserService;
import com.user.utils.DateUtils;
import com.user.utils.EmailUtils;

/**
 * 定时发送邮件监听器
 *
 */
public class SendEmail implements ServletContextListener {

    /**
     * 构造方法 
     */
    public SendEmail() {
        // TODO Auto-generated constructor stub
    }

	/**
     * 服务器启动时 就设置定时操作
     */
    public void contextInitialized(ServletContextEvent arg0)  { 
    	// 实例化Timer
    	Timer timer = new Timer();
    	// 调用执行任务方法
    	timer.schedule(new TimerTask() {
			
			@Override
			public void run() {
				// 调用service层 查询满足条件的用户
				UserService servie = new UserService();
				List<User> users = servie.findUserByBirthday();
				if (users != null && users.size() > 0) {
					// 向寿星发送祝福邮件
					for (User user : users) {
						 EmailUtils.send(user);
					}
				}
			}
		}, 0, DateUtils.getOneDay());
    }

	/**
     * 销毁方法 服务器正常关闭时执行
     */
    public void contextDestroyed(ServletContextEvent arg0)  { 
         // TODO Auto-generated method stub
    }
	
}
